package phasebook.client;


import java.io.Serializable;
import java.util.Set;

public interface DirtyRegionManager {
	
	public Set<DirtyRegion> waitForDirtyRegions(long myId);

	public void publishDirtyRegions(long userId, Region... regions);

	public void subscribeSelf(long myId);
	public void subscribeOtherUser(long myId, long userId);

	public void unsubscribeAll(long myId);
	public void unsubscribeOtherUser(long myId, long userId);
	
	public interface DirtyRegion extends Serializable{
		public Region getRegion();
		public long getUserId();
		public long getMyId();
	}
	
	public enum Region{
		Board,Album,Profile,
		Friends, FriendRequests, 
		MyRequests, FinantialMovements,
	}
}
